package com.thwj.project.biz.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.thwj.common.annotation.Excel;
import com.thwj.framework.mybatis_plus.MybatisMySQLGeometryHandler;
import lombok.*;
import org.locationtech.jts.geom.Point;

import java.io.Serializable;
import java.util.Date;

;

/**
 * 用户动态记录对象 biz_dynamic
 *
 * @author generate
 * @date 2023-08-15
 */

@Getter
@Setter
@ToString
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("biz_dynamic")
public class Dynamic extends Model<Dynamic>{
private static final long serialVersionUID=1L;

    /** 主键 */
    @TableId(type = IdType.AUTO)
    private Long id;

    /** 用户主键 */
            @Excel(name = "用户主键")
    private Long userId;

    /** 运动日期 */
            @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
            @Excel(name = "运动日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date dateDay;

    /** 文字内容 */
            @Excel(name = "文字内容")
    private String content;

    /** 图片列表 */
            @Excel(name = "图片列表")
    private String picList;

    /** 标签 */
            @Excel(name = "标签")
    private String tagJson;

    /** 动态状态（1：未发布 2：发布失败 3发布成功） */
            @Excel(name = "动态状态", readConverterExp = "1=：未发布,2=：发布失败,3=发布成功")
    private Integer status;

    /** 浏览量 */
            @Excel(name = "浏览量")
    private Integer lookCount;

    /** 评论量 */
            @Excel(name = "评论量")
    private Integer commentCount;

    /** 点赞量 */
            @Excel(name = "点赞量")
    private Integer goodCount;

    /** 异常原因 */
            @Excel(name = "异常原因")
    private String error;

    /** 是否有效业务(1:有效 0无效) */
            @Excel(name = "是否有效业务(1:有效 0无效)")
    private Boolean valid;

    /** 创建时间 */
            @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
            @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createDate;

    /** 乐观锁版本号 */
            @Excel(name = "乐观锁版本号")
            @Version
    private Integer versionNo;


    /** 行政区域-省 */
    @Excel(name = "行政区域-省")
    private Long codeProv;

    /** 行政区域-省 */
    @Excel(name = "行政区域-省")
    private String nameProv;

    /** 行政区域-市 */
    @Excel(name = "行政区域-市")
    private Long codeCity;

    /** 行政区域-市 */
    @Excel(name = "行政区域-市")
    private String nameCity;

    /** 行政区域-区 */
    @Excel(name = "行政区域-区")
    private Long codeDistrict;

    /** 行政区域-区 */
    @Excel(name = "行政区域-区")
    private String nameDistrict;

    /** 经纬度 */
    @TableField(typeHandler = MybatisMySQLGeometryHandler.class)
    private Point location;

    /***
     * 临时暂存 距离 放在最后一行
     */
    @TableField(exist = false)
    private Double distance;

    /** 经度 */
    @Excel(name = "经度")
    private Double longitude;

    /** 维度 */
    @Excel(name = "维度")
    private Double latitude;




    @Override
    public Serializable pkVal() {
        return this.id;
    }
}
